// Dynamic Proxy by Lukasz Kwiecinski, Poznan, 2004
// Author: grosee@wp.pl
// You may use this code without any prohibition.

using System;

namespace GURUCORE.Framework.Core.Proxy
{
	/// <summary>
	/// Methods marked with this attribute will not be delegated 
	/// to wrapped object. 
	/// </summary>
	/// <remarks>
	/// This attribute must be used on each 
	/// method of proxy interface which is not virtual - so it 
	/// cannot be delegated. Execution of this method will 
	/// occur on proxy - not on wrapped object. 
	/// If proxy interface is not a class then this attribute 
	/// cannot be used on a method (every method of interface 
	/// must be delegated in proxy because it must be implemented).
	/// </remarks>
	[AttributeUsage(AttributeTargets.Method, Inherited = true)]
	public class NonDelegatedAttribute
		: Attribute
	{
		/// <summary>
		/// Creates instance of this attribute.
		/// </summary>
		public NonDelegatedAttribute()
		{
		}
	}
}
